package org.biloxi.builders.verbs.cardverbs.impl;

import org.biloxi.builders.subjects.cardsubjects.HaveCardSubject;
import org.biloxi.builders.subjects.cardsubjects.WhenCardSubject;
import org.biloxi.builders.subjects.cardsubjects.impl.HaveCardSubjectImpl;
import org.biloxi.builders.subjects.playersubjects.HavePlayerSubject;
import org.biloxi.builders.subjects.playersubjects.impl.HavePlayerSubjectImpl;
import org.biloxi.builders.verbs.impl.WhenVerbImpl;
import org.biloxi.model.card.CardInstance;
import org.biloxi.player.PlayerID;

public abstract class AbstractWhenCardVerb implements WhenVerbImpl {
	
	private final WhenCardSubject _wcs;
	public final WhenCardSubject getWhenCardSubject() { return _wcs; }
	
	public AbstractWhenCardVerb(WhenCardSubject wcs) {
		_wcs = wcs;
	}
	
	public HaveCardSubject have(CardInstance card) {
		return new HaveCardSubjectImpl(this);
	}
	public HavePlayerSubject have(PlayerID card) {
		return new HavePlayerSubjectImpl(this);
	}

}
